package br.com.toscano.contpedido.view;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;

import br.com.toscano.contpedido.business.ProdutoBC;
import br.com.toscano.contpedido.otd.ProdutoOTD;
import br.gov.frameworkdemoiselle.annotation.NextView;
import br.gov.frameworkdemoiselle.annotation.PreviousView;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.template.AbstractPageBean;

@ViewController
@NextView("./produto_historico_uso.jsf")
@PreviousView("./produto_historico_uso.jsf")
public class ProdutoHistoricoUsoMB extends AbstractPageBean {

	private static final long serialVersionUID = 1L;

	private Date dataInicial;
	private Date dataFinal;
	private List<ProdutoOTD> listaProdutoOTD;

	public Date getDataInicial() {
		return dataInicial;
	}

	public void setDataInicial(Date dataInicial) {
		this.dataInicial = dataInicial;
	}

	public Date getDataFinal() {
		return dataFinal;
	}

	public void setDataFinal(Date dataFinal) {
		this.dataFinal = dataFinal;
	}

	@Inject
	private ProdutoBC produtoBC;

	public List<ProdutoOTD> getListaProdutoOTD() {
		return listaProdutoOTD;
	}

	public void setListaProdutoOTD(List<ProdutoOTD> listaProdutoOTD) {
		this.listaProdutoOTD = listaProdutoOTD;
	}
	
	public void filtrar() {
		listaProdutoOTD = produtoBC.gerarListagemProdutosUsados(dataInicial, dataFinal);
	}
	
	
	
	
	
	
	public void postProcessXLSRecebimentos(Object document) {
		HSSFWorkbook wb = (HSSFWorkbook) document;
		HSSFSheet sheet = wb.getSheetAt(0);
		
		/******************** HEADER **********************/		
		CellStyle headerStyle = wb.createCellStyle();
		Font headerFont = wb.createFont();
		headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
		headerFont.setColor(HSSFColor.BLUE.index);
		headerStyle.setFont(headerFont);
		headerStyle.setAlignment(CellStyle.ALIGN_CENTER);
		 
		Row headerRow = sheet.getRow(0);
		int cont = 0; 
		for (Cell cell : headerRow) {
			cell.setCellStyle(headerStyle);
			if (0 == cont) {
				cell.setCellValue("Descrição");
			} else if (cont ==1) {
				cell.setCellValue("Quantidade");
			} else if (cont ==2) {
				cell.setCellValue("Valor Total do Item");
			}
			cont++;
		}
		
		/******************** TOTAL **********************/
//		CellStyle style = wb.createCellStyle();
//		Font font = wb.createFont();
//		font.setBoldweight(Font.BOLDWEIGHT_BOLD);
////		font.setColor(HSSFColor.ORANGE.index); 
//		style.setFont(font);
//		style.setAlignment(CellStyle.ALIGN_RIGHT);
//		Row totalRow = sheet.createRow(sheet.getLastRowNum()+2);
//		Cell cell1 = totalRow.createCell(5);
//		cell1.setCellValue("Total");
//		cell1.setCellStyle(style);
//		Cell cell2 = totalRow.createCell(6);
//		
//		BigDecimal valor = BigDecimal.ZERO;
//		List<Recebimento> recebimentos = this.getListaRecebimentos();
//		for (Recebimento recebimento : recebimentos) {
//			valor = valor.add(recebimento.getValorTotalRecebimento());
//		}
//		
//		cell2.setCellFormula(valor.toString());
//		
//		cell2.setCellStyle(style);

		//Ajuste do tamanho das colunas
		sheet.autoSizeColumn(0);
		sheet.autoSizeColumn(1);
		sheet.autoSizeColumn(2);
//		sheet.autoSizeColumn(3);
//		sheet.autoSizeColumn(4);
//		sheet.autoSizeColumn(5);

	}

	
}